IAudioProcessor Class Reference
[VST 3 Interfaces to be implemented by Plug-inVST 3 Interfaces defined in version 3.0.0]

Audio Processing Interface. More...

#include <ivstaudioprocessor.h>

Inheritance diagram for IAudioProcessor:
Inheritance graph
[legend]

Public Member Functions

virtual tresult setBusArrangements (SpeakerArrangement *inputs, int32 numIns, SpeakerArrangement *outputs, int32 numOuts)=0
 Try to set (from host) a predefined arrangement for inputs and outputs.
virtual tresult getBusArrangement (BusDirection dir, int32 index, SpeakerArrangement &arr)=0
 Gets the bus arrangement for a given direction (input/output) and index.
virtual tresult canProcessSampleSize (int32 symbolicSampleSize)=0
 Asks if a given sample size is supported see SymbolicSampleSizes.
virtual uint32 getLatencySamples ()=0
 Gets the current Latency in samples.
virtual tresult setupProcessing (ProcessSetup &setup)=0
 Called in disable state (not active) before processing will begin.
virtual tresult setProcessing (TBool state)=0
 Informs the Plug-in about the processing state.
virtual tresult process (ProcessData &data)=0
 The Process call, where all information (parameter changes, event, audio buffer) are passed.
virtual uint32 getTailSamples ()=0
 Gets tail size in samples.

Static Public Attributes

static const FUID iid

Detailed Description

Audio Processing Interface.

This interface must always be supported by audio processing Plug-ins.


Member Function Documentation

virtual tresult setBusArrangements ( SpeakerArrangement inputs,
int32  numIns,
SpeakerArrangement outputs,
int32  numOuts 
) [pure virtual]

Try to set (from host) a predefined arrangement for inputs and outputs.

The host should always deliver the same number of input and output buses than the Plug-in needs (see IComponent::getBusCount). The Plug-in returns kResultFalse if wanted arrangements are not supported. If the Plug-in accepts these arrangements, it should modify its buses to match the new arrangements (asked by the host with IComponent::getInfo () or IAudioProcessor::getBusArrangement ()) and then return kResultTrue. If the Plug-in does not accept these arrangements, but can adapt its current arrangements (according to the wanted ones), it should modify its buses arrangements and return kResultFalse.

Implemented in AudioEffect, and SingleComponentEffect.

virtual tresult getBusArrangement ( BusDirection  dir,
int32  index,
SpeakerArrangement arr 
) [pure virtual]

Gets the bus arrangement for a given direction (input/output) and index.

Note: IComponent::getInfo () and IAudioProcessor::getBusArrangement () should be always return the same information about the buses arrangements.

Implemented in AudioEffect, and SingleComponentEffect.

virtual tresult canProcessSampleSize ( int32  symbolicSampleSize  )  [pure virtual]

Asks if a given sample size is supported see SymbolicSampleSizes.

Implemented in AudioEffect, and SingleComponentEffect.

virtual uint32 getLatencySamples (  )  [pure virtual]

Gets the current Latency in samples.

The returned value defines the group delay or the latency of the Plug-in. For example, if the Plug-in internally needs to look in advance (like compressors) 512 samples then this Plug-in should report 512 as latency. If during the use of the Plug-in this latency change, the Plug-in has to inform the host by using IComponentHandler::restartComponent (kLatencyChanged), this could lead to audio playback interruption because the host has to recompute its internal mixer delay compensation. Note that for player live recording this latency should be zero or small.

Implemented in AudioEffect, and SingleComponentEffect.

virtual tresult setupProcessing ( ProcessSetup setup  )  [pure virtual]

Called in disable state (not active) before processing will begin.

Implemented in AudioEffect, and SingleComponentEffect.

virtual tresult setProcessing ( TBool  state  )  [pure virtual]

Informs the Plug-in about the processing state.

This will be called before process calls (one or more) start with true and after with false. In this call the Plug-in should do only light operation (no memory allocation or big setup reconfiguration), this could be used to reset some buffers (like Delay line or Reverb).

Implemented in AudioEffect, and SingleComponentEffect.

virtual tresult process ( ProcessData data  )  [pure virtual]

The Process call, where all information (parameter changes, event, audio buffer) are passed.

Implemented in AudioEffect, and SingleComponentEffect.

virtual uint32 getTailSamples (  )  [pure virtual]

Gets tail size in samples.

For example, if the Plug-in is a Reverb Plug-in and it knows that the maximum length of the Reverb is 2sec, then it has to return in getTailSamples() (in VST2 it was getGetTailSize ()): 2*sampleRate. This information could be used by host for offline processing, process optimization and downmix (avoiding signal cut (clicks)). It should return:

  • kNoTail when no tail
  • x * sampleRate when x Sec tail.
  • kInfiniteTail when infinite tail.

Implemented in AudioEffect, and SingleComponentEffect.


Field Documentation

const FUID iid [static]

Reimplemented from FUnknown.

 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Defines
Empty

Copyright ©2013 Steinberg Media Technologies GmbH. All Rights Reserved.